package edu.ynu.se.xiecheng.achitectureclass.dao;

import edu.ynu.se.xiecheng.achitectureclass.common.dao.LogicDAO;
import edu.ynu.se.xiecheng.achitectureclass.entity.Equipment;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * EquipmentDao 接口
 * 用于访问和操作 Equipment 实体的数据
 */
@Repository
public interface EquipmentDao extends LogicDAO<Equipment, Long> {
    /**
     * 根据大棚ID查找设备列表
     *
     * @param plantationId 种植园ID
     * @return 设备列表
     */
    List<Equipment> findByPlantationId(Long plantationId);

    /**
     * 根据设备序列号查找设备
     *
     * @param equipmentSerial 设备序列号
     * @return 设备对象（Optional）
     */
    Optional<Equipment> findByEquipmentSerial(String equipmentSerial);

    /**
     * 根据大棚ID和设备类型查找设备
     *
     * @param plantationId   大棚ID
     * @param equipmentType 设备类型
     * @return 设备对象（Optional）
     */
    Optional<Equipment> findByPlantationIdAndEquipmentType(Long plantationId, String equipmentType);
}